/**
 *Copyright (c) 2024 watereyes
 * safetymanagement is licensed under Mulan PubL v2.
 * You can use this software according to the terms and conditions of the Mulan
 * PubL v2.
 * You may obtain a copy of Mulan PubL v2 at:
 *          http://license.coscl.org.cn/MulanPubL-2.0
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PubL v2 for more details.
 */
package com.koron.accident.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.koron.common.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

@ApiModel(value = "事件管理",description = "事件管理实体类")
public class Event extends BaseEntity {

    @ApiModelProperty(value = "水司Code", name = "corpCode", required = true)
    private String corpCode;

    @ApiModelProperty(value = "水司名称", name = "corpName", required = false)
    private String corpName;

    @ApiModelProperty(value = "事件名称",name = "name",required = true)
    private String name;

    @ApiModelProperty(value = "事发单位code",name = "departmentCode",required = true)
    private String departmentCode;

    @ApiModelProperty(value = "事发单位名称",name = "departmentName",required = true)
    private String departmentName;

    @ApiModelProperty(value = "事件类别",name = "accidentType",required = true)
    private String accidentType;

    @ApiModelProperty(value = "事件类别名称",name = "accidentTypeName")
    private String accidentTypeName;

    @ApiModelProperty(value = "发生时间",name = "occurrenceTime")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date occurrenceTime;
    private String occurrenceTimeStr;

    @ApiModelProperty(value = "发生地点",name = "occurrencePlace")
    private String occurrencePlace;

    @ApiModelProperty(value = "事情经过",name = "eventContent")
    private String eventContent;

    @ApiModelProperty(value = "原因分析",name = "eventReason")
    private String eventReason;

    @ApiModelProperty(value = "吸取教训",name = "experience")
    private String experience;

    @ApiModelProperty(value = " 是否整改，0:未整改，1已整改",name = "isRectify")
    private Integer isRectify;

    @ApiModelProperty(value = "整改期限",name = "rectificationDeadline")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date rectificationDeadline;
    private String rectificationDeadlineStr;

    @ApiModelProperty(value = "整改实际完成日期",name = "completeTime")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date completeTime;

    @ApiModelProperty(value = "损工时",name = "lossWorkingHours")
    private BigDecimal lossWorkingHours;

    @ApiModelProperty(value = "备注",name = "remark")
    private String remark;

    @ApiModelProperty(value = "附件",name = "attachment")
    private String attachment;

    @ApiModelProperty(value = "pdf附件",name = "previewAttachment")
    private String previewAttachment;

    @ApiModelProperty(name="status",value = "审批状态，0:审批中，1：审批完成，2：新增驳回，3：修改驳回，4：删除驳回",required = true)
    private Integer status;

    @ApiModelProperty(name="isRemove",value = "是否删除，0:未删除，1：已删除",required = true)
    private Integer isRemove;

    public String getCorpCode() {
        return corpCode;
    }

    public void setCorpCode(String corpCode) {
        this.corpCode = corpCode;
    }

    public String getCorpName() {
        return corpName;
    }

    public void setCorpName(String corpName) {
        this.corpName = corpName;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDepartmentCode() {
        return departmentCode;
    }

    public void setDepartmentCode(String departmentCode) {
        this.departmentCode = departmentCode;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public String getAccidentType() {
        return accidentType;
    }

    public void setAccidentType(String accidentType) {
        this.accidentType = accidentType;
    }

    public String getAccidentTypeName() {
        return accidentTypeName;
    }

    public void setAccidentTypeName(String accidentTypeName) {
        this.accidentTypeName = accidentTypeName;
    }

    public Date getOccurrenceTime() {
        return occurrenceTime;
    }

    public void setOccurrenceTime(Date occurrenceTime) {
        this.occurrenceTime = occurrenceTime;
    }

    public String getOccurrencePlace() {
        return occurrencePlace;
    }

    public void setOccurrencePlace(String occurrencePlace) {
        this.occurrencePlace = occurrencePlace;
    }

    public String getEventContent() {
        return eventContent;
    }

    public void setEventContent(String eventContent) {
        this.eventContent = eventContent;
    }

    public String getEventReason() {
        return eventReason;
    }

    public void setEventReason(String eventReason) {
        this.eventReason = eventReason;
    }

    public String getExperience() {
        return experience;
    }

    public void setExperience(String experience) {
        this.experience = experience;
    }

    public Integer getIsRectify() {
        return isRectify;
    }

    public void setIsRectify(Integer isRectify) {
        this.isRectify = isRectify;
    }

    public Date getRectificationDeadline() {
        return rectificationDeadline;
    }

    public void setRectificationDeadline(Date rectificationDeadline) {
        this.rectificationDeadline = rectificationDeadline;
    }

    public Date getCompleteTime() {
        return completeTime;
    }

    public void setCompleteTime(Date completeTime) {
        this.completeTime = completeTime;
    }

    public BigDecimal getLossWorkingHours() {
        return lossWorkingHours;
    }

    public void setLossWorkingHours(BigDecimal lossWorkingHours) {
        this.lossWorkingHours = lossWorkingHours;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getAttachment() {
        return attachment;
    }

    public void setAttachment(String attachment) {
        this.attachment = attachment;
    }

    public String getPreviewAttachment() {
        return previewAttachment;
    }

    public void setPreviewAttachment(String previewAttachment) {
        this.previewAttachment = previewAttachment;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getIsRemove() {
        return isRemove;
    }

    public void setIsRemove(Integer isRemove) {
        this.isRemove = isRemove;
    }

    public String getOccurrenceTimeStr() {
        return occurrenceTimeStr;
    }

    public void setOccurrenceTimeStr(String occurrenceTimeStr) {
        this.occurrenceTimeStr = occurrenceTimeStr;
    }

    public String getRectificationDeadlineStr() {
        return rectificationDeadlineStr;
    }

    public void setRectificationDeadlineStr(String rectificationDeadlineStr) {
        this.rectificationDeadlineStr = rectificationDeadlineStr;
    }

    @Override
    public String toString() {
        return "Event{" +
                "corpCode='" + corpCode + '\'' +
                ", corpName='" + corpName + '\'' +
                ", name='" + name + '\'' +
                ", departmentCode='" + departmentCode + '\'' +
                ", departmentName='" + departmentName + '\'' +
                ", accidentType='" + accidentType + '\'' +
                ", accidentTypeName='" + accidentTypeName + '\'' +
                ", occurrenceTime=" + occurrenceTime +
                ", occurrencePlace='" + occurrencePlace + '\'' +
                ", eventContent='" + eventContent + '\'' +
                ", eventReason='" + eventReason + '\'' +
                ", experience='" + experience + '\'' +
                ", isRectify=" + isRectify +
                ", rectificationDeadline=" + rectificationDeadline +
                ", completeTime=" + completeTime +
                ", lossWorkingHours=" + lossWorkingHours +
                ", remark='" + remark + '\'' +
                ", attachment='" + attachment + '\'' +
                '}';
    }
}
